    let _x_PI = 3e3 * Math.PI / 180
    let _ee = .006693421622965943
    let _ellipsoid = {
					x: 6378245,
					y: 6378245,
					z: 6356863.0188
				}
     let common = function(t, e, i, o) {
				let s = [];
				const r = e[0] + e[1] * i + e[2] * o;
				return s[0] = t[0] + t[1] * i + t[2] * o, s[1] = r, s
		}
   export function _bj2000towgs84(t) {
				const e = common([107.013271291927, 117183877055528e-19, 5.52005322299949e-9], [34.5090861047254, -6.53329767233914e-9, 900382931654742e-20], t.lng, t.lat);
				return {
					lat: e[1],
                    lng: e[0],
				}
			}
   export function _wgs84tobj2000(t) {
				const e = common([-9154025.47592959, 85493.302246493, 83.9170120100466], [-3816302.44775456, -115.535636323405, 111004.0576355], t.lng, t.lat);
				return {
                    lat: e[1],
					lng: e[0]
				}
			}
    let _out_of_china = function(t, e) {
				return !(t > 73.66 && t < 135.05 && e > 3.86 && e < 53.55)
		   }
    let _transformlat = function(t, e) {
				var i = 2 * t - 100 + 3 * e + .2 * e * e + .1 * t * e + .2 * Math.sqrt(Math.abs(t));
				return i += 2 * (20 * Math.sin(6 * t * Math.PI) + 20 * Math.sin(2 * t * Math.PI)) / 3, (i += 2 * (20 * Math.sin(e * Math.PI) + 40 * Math.sin(e / 3 * Math.PI)) / 3) + 2 * (160 * Math.sin(e / 12 * Math.PI) + 320 * Math.sin(e * Math.PI / 30)) / 3
			}
    let  _transformlng = function(t, e) {
				var i = 300 + t + 2 * e + .1 * t * t + .1 * t * e + .1 * Math.sqrt(Math.abs(t));
				return i += 2 * (20 * Math.sin(6 * t * Math.PI) + 20 * Math.sin(2 * t * Math.PI)) / 3, (i += 2 * (20 * Math.sin(t * Math.PI) + 40 * Math.sin(t / 3 * Math.PI)) / 3) + 2 * (150 * Math.sin(t / 12 * Math.PI) + 300 * Math.sin(t / 30 * Math.PI)) / 3
			}
    export function _wgs84togcj02(t) {
				var e = t.lat,
					i = t.lng;
				if (_out_of_china(i, e)) return t;
				var o = _transformlat(i - 105, e - 35),
					s = _transformlng(i - 105, e - 35),
					r = e / 180 * Math.PI,
					n = Math.sin(r);
				n = 1 - _ee * n * n;
				var a = Math.sqrt(n);
				return o = 180 * o / (_ellipsoid.x * (1 - _ee) / (n * a) * Math.PI), {
					lng: i + (s = 180 * s / (_ellipsoid.x / a * Math.cos(r) * Math.PI)),
					lat: e + o
				}
		}
    export function _gcj02tobd09(t) {
				var e = t.lat,
					i = t.lng,
					o = Math.sqrt(i * i + e * e) + 2e-5 * Math.sin(e * _x_PI),
					s = Math.atan2(e, i) + 3e-6 * Math.cos(i * _x_PI);
				return {
					lng: o * Math.cos(s) + .0065,
					lat: o * Math.sin(s) + .006
				}
			}